#include "chartowchar.cpp"
        #include "wchartochar.cpp"

        static String^ chgmojidata1( wchar_t* chr )
        {
            wchar_t* pdest;
            String^ str = "";
            int len = wcslen( chr );
            wchar_t chrwk[ systemworklen ];
            wchar_t chrwk1[ 2 ];
            int m;
            int i;

            int m1 = 1;
            int m2 = 2;
            wcscpy_s( chrwk, systemworklen, chr );
            //m = wcslen( chrwk );
            if ( ( m = wcsnlen( chrwk, systemdatalen ) ) < 1 ) return str;
            pdest = &chrwk[ 0 ];
            for ( i = 0; i < m; i++ )
            {
                wcsncpy_s( chrwk1, m2, pdest + i, m1 );
                System::String^ str1 =
                    System::Char::ToString( chrwk1[ 0 ] );
                str = System::String::Concat( str, str1 );
                //pdest = pdest + m1;
            }
            return str;
        }

        static String^ chgmojidata3( char* chr )
        {
            String^ str = "";
            static char chrwk[ systemworklen ];
            static char chrwk2[ systemworklen ];
            wchar_t chrwk1[ systemworklen ];
            wchar_t* chr1 =  &chrwk1[ 0 ];
            int m;

            strcpy_s( chrwk2, systemdatalen, chr );
            m = strlen( chrwk2 );
            chr1 = chartowchar( chrwk2, m );
            return str = chgmojidata1( chr1 );
        }


        static char* chgmojidata4( String^ str )
        {
            static wchar_t chrwk2[ systemworklen ];
            static wchar_t* chr2 =  &chrwk2[ 0 ];
            static char chrwk[ systemworklen ];
            static char* chr =  &chrwk[ 0 ];
            char chrwk1[ systemworklen ];
            char* chr1 =  &chrwk1[ 0 ];
            int m;

            wcscpy_s( chrwk2, systemdatalen, chgmojidata2( str ) );
            m = wcslen( chrwk2 );
            chr1 = wchartochar( chrwk2, m );
            strcpy_s( chrwk, systemworklen, chr1 );
            return chr;
        }

        static wchar_t* chgmojidata2( String^ str )
        {
            static wchar_t chrwk[ systemworklen ];
            wchar_t* chr =  &chrwk[ 0 ];
            int m1 = 1;
            int m;
            int i;

            m = str->Length;
            chrwk[ 0 ] = 0x00;
            for ( i = 0; i < m; i++ )
            {
                System::String^ str1 = str->Substring( i, m1 );
                wchar_t chr1 = System::Convert::ToChar( str1 );
                wcsncat_s( chrwk, systemworklen, &chr1, m1 );
            }
            chrwk[ i ] = 0x00;
            return chr;
        }